#!/usr/bin/env python
import glob, os, sys, filecmp

fail = 0
for t in sorted(glob.glob('*.ngc')):
    print >>sys.stderr, "#", t
    p = os.popen("rs274 -g %s 2>&1 > %s.out " % (t, t))
    output = p.readlines()
    r = p.close()
    out_file = t + ".out"
    expected_file = t + ".expected"
    if r != None:
        print "%s: Interpreter reported an error with the gcode" % t
        print output
	fail += 1
	continue
    if not filecmp.cmp(out_file, expected_file):
        print "%s: Interpreter output is unexpected:" % t
        os.system('diff -u %s %s' % (expected_file, out_file))
        fail += 1
        continue

if fail:
    raise SystemExit, "%d failures" % fail
